//package com.fecean.aabbc.netty.message2;
//
//import lombok.extern.slf4j.Slf4j;
//import org.apache.commons.lang3.StringUtils;
//
//import java.time.Instant;
//import java.util.UUID;
//
///**
// * NettyMessageBuilder
// *
// * @author: chenfenghai
// * @version: 1.0
// * @date: 2020-03-10 14:31
// * @blame Team
// */
//@Slf4j
//public class NettyMessageBuilder {
//
//    /**
//     ** Netty消息体
//     */
//    private NettyMessage nettyMessage;
//
//    /**
//     ** 构造注册消息
//     * @return NettyMessage
//     */
//    public static NettyMessage buildRegisterMessage(String tenantId, String cinemaCode){
//        NettyMessage message = new NettyMessage();
//        message.setId(UUID.randomUUID().toString());
//        message.setType(NettyMessageTypeEnum.REGISTER.name());
//        message.setTenantId(StringUtils.trimToEmpty(tenantId));
//        message.setCinemaCode(StringUtils.trimToEmpty(cinemaCode));
//        message.setTimestamp(Instant.now().toEpochMilli());
//        return message;
//    }
//
//    /**
//     ** 构造心跳消息
//     * @return NettyMessage
//     */
//    public static NettyMessage buildHeartbeatMessage(String tenantId, String cinemaCode){
//        NettyMessage message = new NettyMessage();
//        message.setId(UUID.randomUUID().toString());
//        message.setType(NettyMessageTypeEnum.HEARTBEAT.name());
//        message.setTenantId(StringUtils.trimToEmpty(tenantId));
//        message.setCinemaCode(StringUtils.trimToEmpty(cinemaCode));
//        message.setTimestamp(Instant.now().toEpochMilli());
//        return message;
//    }
//
//    /**
//     ** 构造业务消息
//     * @return NettyMessage
//     */
//    public static NettyMessage buildBusinessMessage(String tenantId, String cinemaCode, String content){
//        NettyMessage message = new NettyMessage();
//        message.setId(UUID.randomUUID().toString());
//        message.setType(NettyMessageTypeEnum.BUSINESS.name());
//        message.setTenantId(StringUtils.trimToEmpty(tenantId));
//        message.setCinemaCode(StringUtils.trimToEmpty(cinemaCode));
//        message.setContent(StringUtils.trimToEmpty(content));
//        message.setTimestamp(Instant.now().toEpochMilli());
//        return message;
//    }
//
//    /**
//     ** 读取Netty消息
//     * @param objectMessage 消息内容
//     * @return NettyMessageBuilder
//     */
//    public static NettyMessageBuilder readMessage(Object objectMessage){
//        NettyMessageBuilder builder = new NettyMessageBuilder();
//        if(objectMessage instanceof NettyMessage){
//            builder.nettyMessage = (NettyMessage)objectMessage;
//        }
//        return builder;
//    }
//
//    /**
//     ** 是否无效的Netty消息
//     * @return boolean
//     */
//    public boolean isInvalidMessage(){
//        return nettyMessage == null || NettyMessageTypeEnum.getEnum(nettyMessage.getType()) == null;
//    }
//
//    /**
//     ** 是否Netty注册消息
//     * @return boolean
//     */
//    public boolean isRegisterMessage(){
//        return nettyMessage != null && NettyMessageTypeEnum.REGISTER.compare(nettyMessage.getType());
//    }
//
//    /**
//     ** 是否Netty心跳消息
//     * @return boolean
//     */
//    public boolean isHeartbeatMessage(){
//        return nettyMessage != null && NettyMessageTypeEnum.HEARTBEAT.compare(nettyMessage.getType());
//    }
//
//    /**
//     ** 是否Netty业务消息
//     * @return boolean
//     */
//    public boolean isBusinessMessage(){
//        return nettyMessage != null && NettyMessageTypeEnum.BUSINESS.compare(nettyMessage.getType());
//    }
//
//    /**
//     ** 获取消息体对象
//     * @return NettyMessage
//     */
//    public NettyMessage getNettyMessage(){
//        return nettyMessage;
//    }
//}
